package com.sc.nft.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.sc.nft.entity.UserInfo;
import com.sc.nft.entity.dto.CollectionAttentionOrCancelDTO;
import com.sc.nft.entity.dto.SecondCollectionConfigDTO;
import com.sc.nft.entity.dto.WhetherAttentionDTO;
import com.sc.nft.entity.vo.WhetherAttentionVO;
import com.sc.nft.sup.PageRequest;

/**
 * 藏品关注(CollectionAttention)表服务接口
 *
 * @author 王伟成
 * @since 2024-03-06 13:55:25
 */
public interface CollectionAttentionService {

    /**
     * 关注藏品或者取消关注
     *
     * @param user
     * @param collectionAttentionOrCancelDTO
     */
    void attentionOrCancel(UserInfo user, CollectionAttentionOrCancelDTO collectionAttentionOrCancelDTO);

    /**
     * 用户是否关注当前藏品
     *
     * @param user
     * @param whetherAttentionDTO
     * @return
     */
    WhetherAttentionVO whetherAttention(UserInfo user, WhetherAttentionDTO whetherAttentionDTO);

    /**
     * 获取藏品关注列表
     *
     * @param user
     * @param pageRequest
     * @return
     */
    IPage<SecondCollectionConfigDTO> attentionList(UserInfo user, PageRequest pageRequest);
}
